<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <meta http-equiv="X-UA-Compatible" content="ie=edge" />
  <link rel="stylesheet" href="css/reset.css" />
  <link rel="stylesheet" href="css/main.css" />
  <script type="text/javascript" src="js/jquery-1.12.4.min.js"></script>
  <script type="text/javascript" src="js/jquery-ui.min.js"></script>
  <script type="text/javascript" src="js/jquery.mousewheel.js"></script>
  <title>聊天机器人</title>
</head>

<body>
  <div class="wrap">
    <!-- 头部 Header 区域 -->
    <div class="header">
      <h3>小思同学</h3>
      <img src="img/person01.png" alt="icon" />
    </div>
    <!-- 中间 聊天内容区域 -->
    <div class="main">
      <ul class="talk_list" style="top: 0px;" id="talk_list">
        <li class="left_word">
          <img src="img/person01.png" /> <span>嗨，最近想我没有？</span>
        </li>
        
      </ul>
      <div class="drag_bar" style="display: none;">
        <div class="drager ui-draggable ui-draggable-handle" style="display: none; height: 412.628px;"></div>
      </div>
    </div>
    <!-- 底部 消息编辑区域 -->
    <div class="footer">
      <img src="img/person02.png" alt="icon" />
      <input type="text" placeholder="说的什么吧..." class="input_txt" id="ipt" />
      <input type="button" value="发 送" class="input_sub" id="btnSend" />
    </div>
  </div>
  <!-- 注意：只要为 audio 指定了新的 src 属性，而且指定了 autoplay，那么，语音就会自动播放 -->
  <audio src="" id="voice" autoplay style="display: none;"></audio>


  <!-- 自己加载 scroll.js 里面有一个充值滚动条的方法 resetui() -->
  <script src="./js/scroll.js"></script>
  <script>
    // 1. 输入内容，点击“发送”按钮，把自己说的话渲染到页面中
    $('#btnSend').on('click', function () {
      // 获取输入的内容
      var myWord = $('#ipt').val();
      // 把自己说的内容渲染到页面中
      $('#talk_list').append(`<li class="right_word">
          <img src="img/person02.png" /> <span>${myWord}</span>
        </li>`);
      // 清空输入框
      $('#ipt').val('');
      // 重置滚动条
      resetui();
      // 调用getRobotMsg函数，处理机器人的回复
      getRobotMsg(myWord);
    })
    
    // 2. 获取机器人的回复，并把回复的内容渲染到页面中
    function getRobotMsg (a) {
      $.ajax({
        url: 'http://www.liulongbin.top:3006/api/robot',
        data: { spoken: a },
        success: function (res) {
          // console.log(res);
          if (res.message === 'success') {
            var robotWord = res.data.info.text; // 机器人会的话
            // 渲染机器人的回复
            $('#talk_list').append(`<li class="left_word">
              <img src="img/person01.png" /> <span>${robotWord}</span>
            </li>`);
            // 重置滚动条
            resetui();
            // 调用toVoice函数，把文字转语音
            toVoice(robotWord);
          }
        }
      });
    }

    // 3. 把机器人回复的内容转成语音
    function toVoice (b) {
      $.ajax({
        url: 'http://www.liulongbin.top:3006/api/synthesize',
        data: { text: b },
        success: function (res) {
          // console.log(res);
          if (res.status === 200) {
            // 设置音频标签的src属性
            $('#voice').attr('src', res.voiceUrl);
          }
        }
      })
    }

    // 4. 优化：按回车也能发送请求
    $('#ipt').on('keyup', function (e) {
      var keyCode = e.which; // 作用和e.keyCode一样;
      if (keyCode === 13) { // keyCode===13说明按了回车键
        // 触发按钮的单击事件即可
        $('#btnSend').trigger('click');
      }
    })
  </script>

</body>

</html>